Automated travel planning system

ABSTRACT

A list of places of interest geographically located near a travel route may be generated by accessing a routing database storing shape points capable of defining a travel route, determining a travel route from the shape points stored in the routing database, accessing a place of interest database including geographic centers, selecting from the places of interest database at least one geographic center that is geographically proximate to the travel route, and generating a list of places of interest associated with at least one of the selected geographic centers.

FIELD OF THE INVENTION

The present invention generally relates to automated travel planningsystems. More particularly, the present invention relates to anapparatus and method for displaying a travel route between a departurepoint and a destination point, and an apparatus and method forgenerating a list of places of interest geographically located near acalculated travel route between a departure point and a destinationpoint.

BACKGROUND OF THE INVENTION

In past years, individuals planning trips by automobile, bicycle, orsimilar means have employed paper maps with manually-highlighted routesfor assistance in traveling from a departure point to a destinationpoint. For example, business such as travel agencies, car rental firms,automobile clubs, and travel clubs often provide individuals withbooklets of maps covering the regions to be traveled by the individuals,and will manually highlight a travel route which may be taken by theindividuals. A major drawback of manually-drawn routes on paper maps isthat it is costly and inefficient in terms of time and money because anindividual must first determine which route to take between a departurepoint and destination point, and must then piece together a set of papermaps which cover the region to be traveled. Furthermore, if anindividual wants to know places of interest, such as hotels,restaurants, and attractions, along the route, he or she must go throughthe time consuming process of determining which places of interest aregeographically located near the route.

As technology has become more sophisticated, computerized mappingsystems have developed for assisting individuals in travel planning. Forexample, U.S. Pat. No. 4,954,958 to Savage et al. discloses adirectional information system for enabling a user to determine adesired geographical route between supplied locations. The systemgenerates routing directions in a language, such as English; for outputto a user via such output devices as a telephone receiver, printer, ordisplay screen. A drawback of the Savage system is that it does notvisually output the route on a displayed map or on a printer.

Other computerized mapping systems for generating a route between adeparture point and a destination point have displayed the generatedroute on a vector map. Vector-mapping draws a map on a display screen onthe fly by reading from a massive database of geographic information.The geographic information includes shape information, such as latitudeand longitude coordinates, to properly draw the location of roads,highways, hydrology, cities, etc. One drawback of such a system is thatit is slow because each map must be drawn on the fly. Another drawbackis that it is difficult to place type on a displayed vector map on thefly without interfering with the roads, highways, hydrology, cities,etc. Yet another drawback of a vector map is that a vector map looksmore like a “stick map” than like a geographically accurate paper map.

Accordingly, a need exists for an automated travel planning apparatusfor overcoming the above-noted drawbacks associated with existing travelplanning systems.

SUMMARY OF THE INVENTION

In accordance with the foregoing, an object of the present invention isto provide an automated travel planning apparatus and method fordisplaying a bit-mapped image of a selected geographic region on adisplay screen and for generating and displaying a travel route betweena selected departure point and a selected destination point at thecorrect position on the bit-mapped image. As discussed later, since thebit-mapped image is a “snap shot” of a vector map counterpart, accessingand drawing the bit-mapped image on the display screen is almostinstantaneous. Moreover, creation of the bit-mapped image entails stepswhich allow type to be easily placed on the bit-mapped image and whichallow the bit-mapped image to be a geographically accuraterepresentation of the coverage region.

Another object of the present invention is to provide an automatedtravel planning apparatus and method for generating a list of places ofinterest near a travel route between a departure point and a destinationpoint.

In accordance with the present invention, the foregoing objects arerealized by providing a method for displaying a travel route, the methodcomprising the steps of providing a bit-mapped image of a geographicregion on a display monitor, providing a routing database havinginformation indicating the geographic location of roads and placeswithin the geographic region, selecting a departure point and adestination point geographically located within the geographic region,accessing the routing database to generate a travel route between theselected departure point and the selected destination point, anddisplaying the travel route on the bit-mapped image on the displaymonitor. In a preferred embodiment, the foregoing method furtherincludes the step of generating and displaying a list of places ofinterest located near the generated travel route.

BRIEF DESCRIPTION OF DRAWINGS

Other objects and advantages of the invention will become apparent uponreading the following detailed description and upon reference to theaccompanying drawings, in which:

FIG. 1 is a block diagram of the system context of the presentinvention;

FIG. 2 is a block diagram of an automated travel planning apparatusembodying the present invention;

FIG. 3 is a data structure diagram for the map database of the automatedtravel planning apparatus of FIG. 2;

FIG. 4 is a diagram illustrating the display-offset of a bit-mappedimage relative to a display screen, in accordance with the “initialdisplay coordinates” in the data structure of FIG. 2;

FIG. 5 is a data structure diagram for the routing database of theautomated travel planning apparatus of FIG. 2;

FIG. 6 is a road network diagram associated with the sample data in-datastructure of FIG. 5;

FIG. 7 is a data structure diagram for the places of interest databaseof the automated travel planning apparatus of FIG. 2;

FIG. 8 is a flowchart showing the operation of displaying a shape pointover a bit-mapped image on a display monitor, performed by the routingcomponent of FIG. 2;

FIG. 9 is a flowchart showing the operation of displaying a list ofplaces of interest near a generated route, performed by the placeselection component of FIG. 2; and

FIGS. 10 and 11 are flowcharts showing the overall operation of theautomated travel planning apparatus of FIG. 2.

While the invention is susceptible to various modifications andalternative forms, a specific embodiment thereof has been shown by wayof example in the drawings and will herein be described in detail. Itshould be understood, however, that it is not intended to limit theinvention to the particular forms disclosed, but on-the contrary, theintention is to cover all modifications, equivalents, and alternativesfalling within the spirit and scope of the invention as defined by theappended claims.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Turning now to the drawings, FIG. 1 illustrates the system context ofthe automated travel planning apparatus embodying the present invention.In the preferred embodiment, the automated travel planning apparatus isexecutable on a personal computer 10, running a graphical user interfacesuch as Microsoft® Windows™ 3.0 or higher on top of the MS-DOS operatingsystem, which includes an 80386 or higher processor, four or moremegabytes of RAM, three or more megabytes of available hard disk space,and VGA or higher graphics capability. The personal computer 10 alsoincludes a user interface 14 having a manually-operated keyboard and amouse. The personal computer 10 is connected to a display monitor 18 forvisual output and to a laser printer 22, if desired, for printed output.

FIG. 2 illustrates a block diagram of the automated travel planningapparatus embodying the present invention. The apparatus employs threeseparate databases, including a map database 26 for storing bit-mappedimages of numerous geographic regions, a routing database 30 for storingnode and link data for roads geographically located within thegeographic regions and for storing place data indicating the geographiclocation of places such as towns and cities, and places of interestdatabase 34 containing the geographic locations of numerous places ofinterest. A processor 38 within the automated travel planning apparatusmay be divided into several functional components, including a mapselection component 42, a routing component 46, and a place selectioncomponent 50. In response to user input at the user interface 14, themap selection component 42 chooses a bit-mapped image from the mapdatabase 26 for display on the display monitor 18. After a user selects,via the user interface 14, a departure point and a destination point,the routing component 46 employs the routing database 40 to generate aroute between the selected departure and destination points. Thegenerated route is displayed on the display monitor 18. If the userrequests a list of places near the displayed route, the place selectioncomponent 50 employs the places of interest database 34 to generate anddisplay a list of places of interest which are within a predetermineddistance of the generated route. Each of the blocks in FIG. 2 aredescribed in greater detail below.

The map database 26 has stored therein bit-mapped images for both highand low level geographic regions. For example, one bit-mapped imagecovers an entire country such as the United States, while otherbit-mapped images cover individual regions (e.g., states) within thecountry. These bit-mapped images are stored in accordance with the datastructure shown in FIG. 3. The data structure fields include “map name”,“file name”, “initial display coordinates”, “projection”, “lat/long ofupper left (ul) corner”, and lat/long of lower right (lr) corner”. Whena bit-mapped image is displayed on the display monitor 18 with a displayscreen 20, the “initial display coordinates” position the bit-mappedimage relative to the display screen 20 as shown in FIG. 4. For example,if the “initial 10 display coordinates” are X1, Y1 and the displayscreen has a resolution of 640×480 pixels, then the bit-mapped image 24will be initially displayed with the bit map coordinates X1, Y1 of thebit-mapped image 24 located at the upper left corner pixel of thedisplay screen 20. These bit map coordinates X1, Y1 are used to find thepixel on the display screen 20 which corresponds to a point X, Y on thebit-mapped image 24. In particular, if X1≦X≦(X1+640) and Y1<Y<(Y1+480),then the bit map coordinates X, Y will fall within the boundaries of thedisplay screen 20 and will correspond to pixel position (X−X1), (Y−Y1)on the display screen 20.

The bit-mapped images are created using a conventional digitalcartographic process. In the digital cartographic process, a vector mapis first created from Geographic Information System (GIS) data, known asTIGER line data, available on nine-track tapes from the Census Bureau ofthe United States government. The TIGER line data includes informationabout most road segments (hereafter “links”) within the entire UnitedStates, including link name, alternate names for a given link, the typeof link (e.g., interstate, highway, limited access, state route, etc.),and the shape of the link. The shape information-for a given linkincludes the latitude and longitude (hereafter “lat/long”) of the endpoints (hereafter “nodes”) and intermediate shape points of the link.The TIGER line data is organized in flat files interrelated by recordnumbers.

After obtaining the TIGER line data on the nine-track 10 tapes, the datais first loaded into a GIS database, such as ARC-INFO by ESRI, Inc. ofRedlands, Calif. Next, the data in the GIS database is formatted forloading into an Apple Macintosh computer which is running vector-baseddrawing software, such as Adobe Illustrator by Adobe Systems, Inc. ofMountain View, Calif., where the GIS data is used to display vector mapsby applying industry standard map projections. Map projections allow oneto display a curved map on a relatively flat surface such as a paper mapor a computer display monitor. Standard map projection formulas aredescribed in detail in the book entitled Map Projections—A WorkingManual, A U.S. Geological Survey Professional Paper, published by theU.S. Department of interior in 1987, which is incorporated herein byreference.

Since the aesthetic quality of the vector maps is relatively low, acartographer significantly improves the quality by modifying the vectormaps. The modifications typically include smoothing out the shape ofroads, adding water regions using map sources such as paper maps, addingpolitical boundaries for states, cities, etc., and coloring and shadingcertain areas. The modified vector maps are saved in Adobe Illustratoras PREVIEW images. These PREVIEW images are “snap-shot” bit mapcounterparts to-the vector maps, and these bit-mapped images incorporatethe modifications which improve the appearance and geographic accuracyof the bit-mapped images relative to the vector maps.

A series of PICT images are created from the PREVIEW images usingcommercially-available software such as CAPTURE™ 4.0 by Mainstay ofAgoura Hills, Calif. These-PICT images are converted to IBM-compatibleformat using commercially-available software such as PICTure This™ byFGM, Inc. of Herndon, Va., and the IBM-compatible images are actuallytransferred from an Apple Macintosh computer to an IBM-compatiblecomputer using a local area network (LAN) or commercially-availablesoftware such as Apple File Exchange. The map database 26 is comprisedof these transferred IBM-compatible images.

An advantage of accessing a bit-mapped image to display a givengeographic region, as opposed to accessing the appropriate GIS data todisplay a vector map of the region on the fly, is that access anddisplay of the bitmapped image is almost instantaneous while access ofthe GIS data and display of the vector map takes several seconds. Thisspeed advantage is significant because processing efficiency is animportant objective of any software-based apparatus. As many computerusers will attest, repeated processing delays of several seconds can bequite frustrating, especially when time is of the essence.

The routing database 30 is created from the same GIS data used to createthe bit-mapped images in the map database 26. As discussed later, thisallows one to easily correlate a generated route with a selectedbit-mapped image so that the route can be displayed over the bitmappedimage at the correct position. The data structure of the routingdatabase 30 is illustrated in FIG. 5 with sample data corresponding tothe road network depicted in FIG. 6. Generally, the routing database 30has stored therein node data, link data, shape data, routing placesdata, and road name data. The node data is organized with an entry foreach node in the road network. Similarly, the link data is organizedwith an entry for each link in the road network. A given node entrypoints to those links which include the given node, and a given linkentry points to the start and end nodes which form the link Thus, withrespect to the sample data in FIG. 5 and the corresponding road networkin FIG. 6, there are five nodes A, B, C, D, and E in the road networkand four links AB, AC, AD, and BE containing those nodes. Node A pointsto all links containing node A; that is, node A points to links AB, AC,and AD. Furthermore, node B points to links AB and BE, node C points tolink AC, node D points to link AD, and node E points to link BE. Each ofthe links AB, AC, AD, and BE point to the nodes which form the link.Thus, link AB points to nodes A and B, link AC points to nodes A and C,link AD points to nodes A and D, and link BE points to nodes B and E.The shape data is organized into sets of shape point entries for eachlink entry. A given link entry points to a shape entry indicating thenumber of shape points in the link.

The link has two shape points corresponding to the end points of thelink, and has additional shape points for turns within the link.Following the entry for the number 10 of shape points in the given linkare entries for each shape point in the given link, along with thelat/long of each shape point. Thus, in the example shown in FIGS. 5 and6; ‘the link AB points to an entry having the number four stored thereinto indicate that the link AB contains four shape points. Following thisnumber entry are four entries for the four shape points S1, S2, S3, andS4 contained within the link AB, a certain lat/long being associatedwith each shape point. Similarly, the link AC points to an entrycontaining the number two, followed by entries for the shape points S1and S5. The link AD points to an entry containing the number two,followed by entries for the shape points S1 and S6. Finally, the link BEpoints to an entry containing the number two, followed by entries forthe shape points S4 and S7.

The routing database 30 also contains routing places data indicating thegeographic location of cities, towns, etc. The routing places dataincludes fields for the “place names”, “closest node or link”, “distancealong link”, “distance from link”, and “lat/long” of the places. Withrespect to the “closest node or link” field, a given place points to anode if a given place is geographically located at a stored node, whilethe place points to the closest link if the place does notgeographically coincide with any stored node. If the place is located ata stored node, the “distance along link” and the “distance from link”are zero. If the place is located on a link, the “distance along link”is the distance between the place and one of the two end nodes of thelink. The end node used to calculate the “distance along link” isarbitrarily chosen. If the ‘place is located away from both a storednode and link, the “distance from link” is the shortest distance betweenthe place and its closest link. This shortest distance is found byextending a line from the given place to the closest link where the lineis perpendicular to the closest link at the point of intersection (seeFIG. 4). The “distance along link” is then found by calculating thedistance between the point of intersection and one of the two end nodesof the link. The distance values are any geographic form of measurementsuch as miles, meters, etc.

The road name data includes an entry for each road of the road networkin FIG. 6. Each link in the routing database 30 points to the road onwhich the link is located. The road network is illustrated with tworoads; road 1 being shown as a thick line connecting nodes C, A, B, andE, and road 2 being shown as a thin line connecting nodes D and A.Therefore, links AB, AC, and BE point to road 1, while link AD points toroad 2.

FIGS. 5 and 6 illustrate three possibilities for the geographic locationof a place relative to a road network. First, a place may be locateddirectly at a node. In particular, PLACE 1 is located at node C and,therefore, points to node C. Since PLACE 1 is located directly at anode, the entries for “distance along link” and “distance from link” arezero. Second, a place may be located away from a node but directly alonga link. In the example, PLACE 2. is geographically located off of a nodeand, therefore, the entry for “closest node or link” is a link, which inthis case is link BE. Since PLACE 2 is located directly on link BE, thevalue for “distance from link” is zero. The value for “distance alonglink” is the distance from either node B or node E (node B in FIG. 6),arbitrarily shown to be ten in FIGS. 5 and 6. Finally, a place may belocated off of any stored node or link. In this situation, representedby PLACE 3, the values for “distance along link” and “distance fromlink” are some nonzero value, arbitrarily shown to be twenty and five,respectively, in FIG. 5.

The places of interest database 34 is organized with the data structuredepicted in FIG. 7. The data structure contains both places of interestdata and geographic Center data. The places of the interest dataincludes fields for “place name” and “geographic center”. The “placename” contains the name of a place of interest, such as a hotel,restaurant, attraction, etc. Each “place name” is associated with a“geographic center”, such as a city. Each places of interest entrypoints to a geographic center entry containing both the geographiccenter associated with the place of interest and the lat/long of thegeographic center. The geographic center for a given place of interestis generally the city with which the place of interest is most commonlyassociated. This data structure effectively groups places of interestbased on geographic location by “geocoding” each place of interest tothe lat/long of a geographic center located near the place of interest.“Geocoding” is the assignment of a lat/long to a c geographic location.Thus, in the example shown in FIG. 7, hotel A and restaurant B areassociated with center 1, and the geographic center entry for center 1points to the first places of interest entry associated with center 1,the entry for hotel A. Similarly, hotel C and attraction D areassociated with center 2, and the geographic center entry for center 2points to the entry for hotel C. There may, of course, be hundreds ofplaces of interest associated with a given geographic center.

The functions performed by the processor 38 employ the data stored inthe map database 26, the routing database 30, and the places of interestdatabase 34. As previously stated, the functional components of theprocessor 38 include the map selection component 42, the routingcomponent 46, and the place selection component 50. In response to userselection of a map name at the user interface 14, the map selectioncomponent 42 retrieves the file associated with the selected map nameand causes the bit-mapped image stored in that file to be displayed onthe display monitor 18. In the display process, the map selectioncomponent 42 reads the “initial display coordinates” field of the mapdatabase so that the upper left corner of the display screen correspondsto the bit map coordinates X, Y.

In response to user selection of a departure point and a destinationpoint at the user interface 14, the routing component 46 of theprocessor 38 generates a travel route between the selected departure anddestination points and draws the generated route over the bit-mappedimage on the display monitor 18. More specifically, when a user selectsa departure point, the routing component 46 searches for the departurepoint in the “place name” field of the routing places data in therouting database 30. If the departure point matches any “place name”,then the routing places data in FIG. 5 associated with that “place name”is saved for later use. If the departure point does not match any “placename”, then the routing component 46 provides the user with a list ofsimilarly-spelled place names on the display monitor 18, from which theuser may select a desired departure point.

Following selection of a departure point, the user selects a destinationpoint. Once again, the routing component 46 searches the routingdatabase 30 to find a match with the selected departure point. If amatch is found between the selected departure point and a “place name”in the routing database 30, then the routing places data associated withthe “place name” is saved for later use. If no match is found, the useris provided with a list of similarly-spelled place names from which toselect a desired destination point. Since a route requires at least twoselected points, failure of the user to select both a departure pointand a destination point will cause the routing component 46 to promptthe user for an additional place selection.

After the user has selected a departure point and at least onedestination point, the user may still select additional destinationpoints. The routing component 46 will generate routes between theselected points in the order they are selected. Thus, if a usersuccessively chooses a departure point, a destination point A, and adestination point B, then the routing component 46 will generate routesbetween the departure point and the destination point A, and between thedestination point A and the destination point B.

In response to user selection of a departure point and at least onedestination point, the routing component 46 determines a travel routebetween the departure point and the destination point using animplementation of Dijkstra's shortest path algorithm. In order to applyDijkstra's algorithm, a departure node associated with the departurepoint and a destination node associated with the destination point aredefined. If the departure point is located at a stored node, then thatnode is the departure node. If the departure point is located away fromstored nodes, but along a link, then the departure node is the departurepoint itself. Finally, if the departure point is located away from bothstored nodes and links, then the departure node is the point ofintersection found by extending a line from the departure pointperpendicular to the closest link. The destination node associated withthe destination point is defined in the same manner.

Since Dijkstra's algorithm is well-known to the art, it will not bedescribed in detail herein. It suffices to say that to find the shortestpath between a departure point and a destination point, the algorithmbegins at the departure node and spreads out through the road network ofnodes and links stored in the routing database 30, adding nodes to asaved list of nodes that we have found the shortest path to, until thedestination node is included in this list of nodes. In applyingDijkstra's algorithm, the routing component 46 determines distancesbetween nodes by reading the field “length of link” in the link data inFIG. 5. If the departure node, however, is located along a link but awayfrom a stored node, then the “distance along link” field of the routingplaces data in FIG. 5 is used in combination with the “length of link”field to determine distances directly around the departure node. Inparticular, the distance between the departure node and one of the twonodes of the link is determined by reading the “distance along link”.The distance between the departure node and the other of the two nodesof the link is determined by subtracting the “distance along link” fromthe “length of link” of the link data. The “distance along link” fieldis used in the same fashion for determining distances to a destinationnode which is located along a link but away from a stored node.Dijkstra's algorithm is described in greater detail in Chapter 9 of thebook INTRODUCTION TO DATA STRUCTURES by Bhagat Singh and Thomas L. Naps,published in 1985 by West Publishing Co., which is 10 incorporatedherein by reference.

After the route is generated by the routing component 46, the routingcomponent 46 creates textual directions for travel between the departureand destination points. In creating the textual directions, all linksalong the generated route pointing to a single road name in the routingdatabase 30 are combined into one textual direction. The textualdirections provide travel instructions beginning from the departurepoint and ending with the destination point, and there is one textualdirection for each road name along the generated route.

Next, the routing component 46 determines the shape of the generatedroute using the shape data in FIG. 5. The routing component 46 collectsall the links along the generated route and, for each link, retrievesthe associated shape points. If a departure or destination point islocated at a node or along a link, then that point is also retrieved asa shape point. If a departure or destination point is located away fromboth nodes and links, then both that point and the point of intersection(INT in FIG. 6) formed by extending a perpendicular line from thedeparture or destination point to the closest link are also retrieved asshape points. In this manner, the routing component 46 retrieves all ofthe shape points along the generated route.

Referring back to FIG. 6, if, for example, the generated route extendsfrom place 1 to place 2 via the links AC, AB, and part of BE, then therouting component 46 retrieves the shape points S5, S1, S2, S3, S4, andplace 2 in an order corresponding to the direction of the generatedroute. Similarly, if the generated route extends from place 1 to place 3via AC, part of AB, and the perpendicular line, then the routingcomponent 46 retrieves the-shape points S5, S1, S2, INT, and place 3, inthat order.

The routing component 46 uses the shape points to draw the generatedroute over the bit-mapped image on the display monitor 18. Inparticular, as shown in FIG. 5, a given shape point is associated withlat/long coordinates. In order to properly position the shape point overthe bitmapped image on the display monitor 18, the routing component 46performs the following operations which are depicted in the flowchart inFIG. 8. First, at step 54, the routing component 46 reads from thememory file associated with the displayed bit-mapped image (FIG. 3) thelat/long of the upper left (ul) and lower right corners of thebit-mapped image and the map projection used for the bit-mapped image.Next, at step 58, the routing component 46 converts the lat/long of theupper left and lower right corners of the bit-mapped image intoprojection units using the received map projection. Projection units arethose units obtained by applying a map projection to a lat/long.

At step 62, the routing component 46 converts the lat/long of the givenshape point into projection units using the same standard map projectionused at step 58. At step 66, the routing component 46 interpolates thegiven shape point (in both the X and Y directions) within the bit-mappedimage by calculating a ratio between the projection units associatedwith the given shape point and the projection units associated withupper left and lower right map corners. At step 70, this ratio ismultiplied by the size of the bit-mapped image (in both the X and Ydirections) to convert the projection units of the given shape pointinto bit map coordinates. Finally, at step 74, the routing component 46reads the “initial display coordinates” of the bit-mapped image (seeFIG. 3), and offsets the shape point by the amount of the “initialdisplay coordinates” to obtain the pixel position of the shape point onthe displayed bit-mapped image. The operations in FIG. 8 are performedfor each shape point along the calculated route.

After all the shape points are collected and converted into properlyoffset bit map coordinates, the routing component 46 generates a videoline on the display monitor, which connects the shape points, by callinga Microsoft® Windows™ drawing function such as “Polyline”. The videoline represents the generated travel route between the selecteddeparture point and the selected destination point. The video lineoverlays the bit-mapped image on the display monitor and is properlypositioned relative to the bit-mapped image because both the bit-mappedimage and the video line are created from the same GIS database andusing the same map projection. In particular, the video line is composedof shape points associated with lat/long coordinates originally takenfrom the GIS database. Similarly, the bit-mapped image is a snap-shot ofa vector map generated from shape information contained from the sameGIS database.

In the preferred embodiment, the travel route is displayed using an“inverse video” line, i.e., a video line which changes each pixel alongthe route to the opposite color. The opposite color of a given pixel isobtained by displaying the color having an opposite RGB (Red, Green,Blue) value to the given pixel. The opposite RGB value is determined bythe graphical user interface, which is preferably Windows™.Alternatively, the route may be displayed using any other colortransformation for the pixels along the route. For example, the pixelsalong the route may be transformed into a solid color, a lighter color,or a darker color.

Moreover, the travel route is preferably displayed with a video linehaving a width which is slightly wider than the widest road along theroute. This insures that the video line completely overlays the roadswhich form the route. Also, the travel route is displayed with thedeparture and destination points having enlarged dots formed thereon sothat these points are clearly visible to the user. This effect iscreated by calling the Microsoft® Windows™ function “Ellipse”, whichhighlights pixels within a fixed radius of the departure and destinationpoints. Alternatively, after the display pixel positions of thedeparture and destination points are obtained, several pixel positionslocated near the departure and destination points are added as shapepoints. When the displayed line traverses these added pixel positions, alarge dot is formed around the departure and destination points.

Not only is the generated travel route displayed on the display monitor18, but it may also be sent to the printer 22 (FIG. 1) for printing. Thetravel route, along with the underlying bit-mapped image, may be printedas follows. First, in response to user selection of a print option viathe user interface 14, the bit-mapped image is selected into a memory DC(device context), i.e., a block of memory organized like a bit map.Second, the routing component 46 draws the travel route to the memoryDC. Since the travel route is now being drawn to the memory DC, asopposed to the display monitor 18, the routing component 46 does notapply the display offset between the bit-mapped image and the displaymonitor 18 to the shape points along the travel route following theirprojection into bit map coordinates. That is, step 74 in FIG. 8 isskipped when the travel route and underlying bit-mapped image areprinted. However, all of the other operations in FIG. 8 are stillperformed by the routing component 46. Next; the routing component 46calculates the width and height of the printable area in printer pixelsso as to maintain the aspect ratio of the bit-mapped image whilecovering as much of the printable area as possible. Finally, Microsoft®Windows™ provides a built-in “StretchBlt” call which performs abit-block transfer of the travel route and bitmapped image from thememory DC to a printer DC so that the printer 22 may print the travelroute and bit-mapped image.

Alternatively, a displayed travel route and bit-mapped image may beprinted by user selection of “Print Screen” via-the user interface 14,which stores the travel route and bit-mapped image into a “Clipboard”under Microsoft® Windows™. The user then enters a drawing applicationsuch as Microsoft® Windows™ PAINTBRUSH and “pastes” the travel route andbit-mapped image from the “Clipboard” to PAINTBRUSH. By selecting aprint option, the pasted travel route and bit-mapped image are printedfrom PAINTBRUSH.

After the generated route is highlighted over the bitmapped image on thedisplay monitor 18, the user may request via the user interface 14 alist of places of interest which are geographically located near thedisplayed route. In response to such a request, the place selectioncomponent performs the operations shown in the flowchart in FIG. 9 todetermine which places of interest are located near the displayed route.First, at step 80, the place selection component 50 successivelyretrieves every Nth shape point along the route, in the direction oftravel, where N is typically greater than one. As previously stated, theshape points along the route were collected by the routing component 46prior to displaying the route on the display monitor 18. At Step 84, forevery Nth shape point, the place selection component 50 determines thedistance between the shape point and all of the geographic centers inthe places of interest database 34. Given a shape point with a lat/longof lat1, long1 and a geographic center with a lat/long of lat2, long2,the standard arc-distance function for calculating the distance betweenlat1, long1 and lat2, long2 is the following:

Distance=RADIUS*2*a sin((sgrt(((cos(lat2)cos(lng2))−(cos(lat1)*cos(lng1)))2+((cos(lat2)*sin(lng2))−(cos(lat1)*sin(lng1)))2+(sin(lat2)−sin(lat1))2)*RADIUS)/(2*RADIUS)))

where

-   -   RADIUS=the radius of the earth, and    -   a sin=the arcsine function.

At step 88, the place selection component determines which geographiccenters are located within a predetermined distance of the shape point.At step 92, for each geographic center located within the predetermineddistance of the shape point, the geographic center is compared to thegeographic centers selected with previous shape points so that the samegeographic center is not chosen twice. If a geographic center is aduplicate of a previously selected geographic center, then it is notchosen a second time. At —26-step 94, the place selection component 50searches the places of interest database 34 for places of interestassociated with the selected geographic centers. At step 96, the placeselection component 50 generates on the display monitor 18 a list ofthose places of interest associated with the selected geographiccenters.

The foregoing operations of the place selection component 50 haveseveral advantages. First, places of interest are grouped aroundgeographic centers and the place selection component 50 calculates thedistance between every Nth shape point and the geographic centers, asopposed to calculating the distance between every Nth shape point andall the places of interest. This improves the processing efficiency ofthe place selection component 50. Second, by taking every Nth shapepoint instead of every shape point at steps 80 and 84, the processingefficiency of the place selection component 50 is increased because adistance comparison is not performed for every shape point. Third, sinceat step 80 the place selection component 50 retrieves the Nth shapepoints in an order corresponding to the direction of travel along theroute, as opposed to some other order, the generated list of places ofinterest is already ordered in accordance with the direction of travel.The place selection component 50 does not have to re-order the generatedlist of places of interest to correspond to the direction of travel.Generating the list to correspond to the direction of travel ispreferable because it allows a user to more easily understand the list.

The overall operation of the automated travel planning apparatus willnow be described by reference to the flowchart in FIGS. 10 and 11. Aftera user initiates operation of the automated travel planning system atstep 100, the map selection 42 component automatically displays abit-mapped image on the display monitor 18, such as a bit-mapped imageof a country (step 104). At step 108, the user selects a departure pointvia the user interface 14, and the routing component 46 searches therouting database 30 for the selected departure point (step 112).

If the selected departure point is not found in the routing database 30at step 116, the routing component 46 generates a list of similar placenames on the display monitor 18 at step 120. At step 124, the userproceeds to select a departure point from the displayed list using theuser interface 14. After a user has correctly selected a departurepoint, the user selects a destination point in the same manner. Afterthe user has correctly selected both a departure point and a destinationpoint (step 128), the user may select additional destination points atstep 132.

After the user has completed selection of departure and destinationpoints, the routing component 46 determines the route between thedeparture point and the first selected destination point, and betweenthe first selected destination point and any additional selecteddestination points (step 136). In addition, the routing component 46determines the textual directions for travel between the selected points(step 140). At step 144, the routing component 46 collects the shapepoints from the routing database 30 for all the links which form thecalculated route. From these shape points, the routing component 46generates a video line, over the bit-mapped image on the display monitor18, which corresponds to the calculated route (step 148).

As illustrated in FIG. 11, following display of the calculated route,the user has several options at step 152. First, the user may selectanother bit-mapped image from the map database 26 (step 156), and therouting component 46 will generate a new video line over the selectedbit mapped image corresponding to the calculated route (step 160).Second, the user may request the textual directions (step 164), and therouting component 46 will display on the display monitor 18 thepreviously generated list of textual directions (step 168). Third, theuser may request a list of places of interest geographically locatednear the calculated route (step 172). In response to this request, theplace selection component 50 determines which geographic centers arelocated within a predetermined distance of the calculated route (step176), searches the places of interest database 34 for the places ofinterest associated with those geographic centers (step 178), anddisplays a list of those places of interest (step 180). Finally, theuser may quit (step 184), which terminates operation of the automatedtravel planning apparatus (step 188).

While the present invention has been described with reference to one ormore particular embodiment, those skilled in the art will recognize thatmany changes may be made thereto without departing from the spirit andscope of the present invention. The following claims set forth the scopeof the present invention.

1. (canceled)
 2. A computer-implemented method, comprising: receiving anoriginating point and a destination point; determining, using at leastone processor, a travel route between the originating point and thedestination point; identifying, using the at least one processor, one ormore places of interest for the determined travel route; and generatingan instruction to display at least a portion of an image of a map thatincludes the determined travel route and identified places of interest.3. The method of claim 2, wherein the image of the map is a bit-mappedimage.
 4. The method of claim 2, further comprising: obtaininginformation associated with one or more shape points of the determinedtravel route.
 5. The method of claim 4, further comprising: generatingan additional instruction to display at least one of the shape pointswithin the image of the map.
 6. The method of claim 2, wherein thedetermining comprises determining the travel route based on vector dataassociated with a plurality of vectors.
 7. The method of claim 2,further comprising: accessing geographic coordinate informationassociated with the map; determining a unit system of the map based onat least the geographic coordinate system; and converting the determinedtravel route to the unit system of the map.
 8. The method of claim 2,wherein identifying the places of interest comprises identifying one ormore places of interest that are proximate to a portion of thedetermined travel route.
 9. The method of claim 2, wherein identifyingthe places of interest comprises identifying at least one of the placesof interest that falls within a threshold distance of a portion of thedetermined travel route.
 10. The method of claim 2, wherein theidentifying the places of interest comprises: identifying a geographiccenter associated with the determined travel route; and identifying atleast one of the places of interest associated with the geographiccenter.
 11. The method of claim 10, wherein identifying the geographiccenter comprises identifying the geographic center based on anassociation with a shape point of the determined travel route.
 12. Anapparatus, comprising: a storage device; and at least one processorcoupled to the storage device, wherein the storage device stores aprogram for controlling the at least one processor, and wherein the atleast one processor, being operative with the program, is configured to:receive an originating point and a destination point; determine, usingat least one processor, a travel route between the originating point andthe destination point; identify, using the at least one processor, oneor more places of interest for the determined travel route; and generatean instruction to display at least a portion of an image of a map thatincludes the determined travel route and identified places of interest.13. The apparatus of claim 12, wherein the image of the map is abit-mapped image.
 14. The apparatus of claim 12, wherein the processoris further configured to: obtain information associated with one or moreshape points of the determined travel route; and generate an additionalinstruction to display at least one of the shape points within the mapimage.
 15. The apparatus of claim 12, wherein the processor is furtherconfigured to determine the travel route based on vector data associatedwith a plurality of vectors.
 16. The apparatus of claim 15, wherein theprocessor is further configured to: access geographic coordinateinformation associated with the map; determine a unit system of the mapbased on at least the geographic coordinate system; and convert thedetermined travel route to the unit system of the map.
 17. The apparatusof claim 12, wherein the processor is further configured to identify oneor more places of interest that are proximate to a portion of thedetermined travel route.
 18. The apparatus of claim 12, wherein theprocessor is further configured to identify at least one of the placesof interest that falls within a threshold distance of a portion of thedetermined travel route.
 19. The apparatus of claim 12, wherein theprocessor is further configured to: identifying a geographic centerassociated with the determined travel route; and identify at least oneof the places of interest associated with the geographic center.
 20. Theapparatus of claim 19, wherein the processor is further configured toidentify the geographic center based on an association with a shapepoint of the determined travel route.
 21. A tangible, non-transitorycomputer-readable medium storing instructions that, when executed by atleast one processor, perform a method comprising the steps of: receivingan originating point and a destination point; determining, using atleast one processor, a travel route between the originating point andthe destination point; identifying, using the at least one processor,one or more places of interest for the determined travel route; andgenerating an instruction to display at least a portion of an image of amap that includes the determined travel route and identified places ofinterest.